create table javabox_test(
	no number primary key, 
	grade number not null,
	question varchar2(1000) not null,
	example1 varchar2(200) not null,
	example2 varchar2(200) not null,
	example3 varchar2(200) not null,
	example4 varchar2(200) not null,
	answer varchar2(200) not null
)	
SELECT *
		FROM 
		( SELECT *
           FROM javabox_test
           ORDER BY DBMS_RANDOM.RANDOM()
    	)WHERE ROWNUM <=5
--no grade question answer example1 example2 example3
drop table javabox_test;
drop sequence javabox_test_seq;
create sequence javabox_test_seq;



select no, grade, question, answer, example1, example2, example3
from javabox_test
where grade=5


select * from javabox_test;


 
 insert into javabox_test
 values(javabox_test_seq.nextval,5,'JAVA 에 대한 설명이 아닌것은?'
,'플랫폼 독립적', '객체 지향 언어', '자바는 다중상속', '멀티 스레드'
,'자바는 다중상속');

insert into javabox_test
 values(javabox_test_seq.nextval,5,'객체지향 3가지 주요 개념이 아닌것은?'
,'Encapsulation ', 'Inheritance, ', 'Polymorphism', 'Polymorphism'
,'Polymorphism');

insert into javabox_test
 values(javabox_test_seq.nextval,5,'다음 중 기본형(primitive)이 아닌 것은?'
,'int', 'byte', 'double', 'boolean','boolean');

insert into javabox_test
 values(javabox_test_seq.nextval,5,'상속에 대한 설명중 잘못된 것은?'
,'상속을 이용하여 비슷한 기능을 가진 클래스들을 계층구조 형태로 구성할 수 있다.'
, '상속은 상위 클래스의 모든 속성과 기능을 상속받고, 추가로 더 가지는 확장(extends)의 개념이다.'
, '자바에서는 하나의 클래스만을 상위 클래스로 가질 수 있다. 즉 다중상속을 허용하지 않는다.'
, '자바에서는 다중상속을 지원하기 때문에 상속을 사용할 수 있다.'
,'자바에서는 다중상속을 지원하기 때문에 상속을 사용할 수 있다.');

insert into javabox_test
 values(javabox_test_seq.nextval,5
,'캡슐화에 대한 설명이 아닌것은?'
,'캡슐화는 꼭 필요한 내용만 보여주고, 불필요한 내용을 감춘다는 개념이다.'
, '클래스를 작성할 때는 꼭 필요한 내용만 공개해야 한다.'
, '구현부가 변경되면 외부에 많은 영향을 준다.'
, '캡슐화의 개념을 적용하여 정보은폐를 달성 할 수 있다.'
,'구현부가 변경되면 외부에 많은 영향을 준다.');


insert into javabox_test
 values(javabox_test_seq.nextval,5,'추상 클래스를 올바르게 선언한 것은?'
,'
class Book{
	abstract void read();
   }
'
, 'abstract class Book{
	void read();
   }'
, 'abstract class Book {
	abstract void read();
   }'
, 'abstract class Book {
   	abstract read();
   }'
,'abstract class Book{
	void read();
   }');

insert into javabox_test
 values(javabox_test_seq.nextval,5
,'다음 중 TestClass 를 더 이상 상속받을 수 없게 선언한 것은?'
,' class TestClass{}'
, 'public TestClass{}'
, 'abstract TestClass{}'
, 'final TestClass{}'
,'final TestClass{}');

insert into javabox_test
 values(javabox_test_seq.nextval,5
,'HTTP 프로토콜을 설명한것이다. 잘못된것을?'
,'request 데이터와 response 데이터로 나누어진다.'
, 'Connection-oriented 와 state 성격을 가진다.'
, ' Response 데이터에는 http 상태 코드값이 포함된다.'
, ' Request 데이터에는 http method 값이 포함된다'
,'request 데이터와 response 데이터로 나누어진다.');

insert into javabox_test
 values(javabox_test_seq.nextval,5
,'클라이언트를 위해 웹서버에 위치시키는 파일을 크게 STATIC RESOURCE 와 DYNOMIC RESOURCE 로 구분한다면 다음중 STATIC RESOURCE 에 들지 않는 것은?'
,'HTML 파일', 'JPEG 파일', 'JS 파일', 'JSP 파일'
,'JSP 파일');

insert into javabox_test
 values(javabox_test_seq.nextval,5
,'다음의 자바 프로그램중 CLIENT SIDE 에서 수행되는 프로그램은'
,'javascript', 'SERVLET', 'JSP', 'EJB'
,'javascript');

insert into javabox_test
 values(javabox_test_seq.nextval,5
,'다음의 서버 프로그램들중 JSP CONTAINER 역할뿐 아니라 EJB CONTAINER 역할까지 가능한 서버 프로그램은?'
,'APACHE WEB SERVER', 'TOMCAT', 'WEB LOGIC', 'RESIN'
,'WEB LOGIC');

insert into javabox_test
 values(javabox_test_seq.nextval,4
,'다음중 servlet을 설명한것중 잘못된 것은?'
,'HttpServlet 을 상속받아서 작성한다.'
, '무조권 public 클래스로 작성해야 한다.'
, 'init, service, destroy 메서드를 무조권 작성해야 한다.'
, 'Servlet 은 멀티스레드로 동작함을 기본으로 한다'
,'init, service, destroy 메서드를 무조권 작성해야 한다.');

insert into javabox_test
 values(javabox_test_seq.nextval,4
,'다음의 파일중 WEB APPLICATION 의 DEPLAYMENT DESCRIPTER 역할을 하는 파일은?'
,'index.jsp', 'web.xml', ' httpd.conf', 'mime.types'
,'web.xml');

insert into javabox_test
 values(javabox_test_seq.nextval,4
,'init 메서드의 메개변수로서 Servlet 의 초기화 파라미터값을 받을 때 사용되는 객체는?'
,'HttpServletRequest', 'HttpServletResponse', 'ServletConfig', 'ServletContext'
,'ServletConfig');

insert into javabox_test
 values(javabox_test_seq.nextval,4
,'클라이언트가 저장한 정보를 지속적으로 유지시키기 위한 방법 중에서 클라이언트 측 디스크에 상태정보가 저장되는 기술은 무엇인가 ?  '
,'Sessoin', 'Hidden', 'Cookie', 'URL Rewriting'
,'Cookie');

insert into javabox_test
 values(javabox_test_seq.nextval,4
,'다음은 JSP 를 설명한것이다. 틀린것은'
,'JSP 는 template 파일이며 JAVA 파일로 변경이되어 수행된다.'
, 'JSP 파일에 태그를 이용하여 JAVA 코드를 추가할수 있다.'
, 'JSP 는 단일 스레드에 의해서 수행된다.'
, ' JSP 로 웹페이지를 작성할경우 클라이언트 화면구성이 Servlet보다 쉬워진다'
,'JSP 는 단일 스레드에 의해서 수행된다.');

insert into javabox_test
 values(javabox_test_seq.nextval,4
,'다음 내장객체의 설명 중 틀린 것을 고르시오.'
,'request ? 클라이언트의 요청정보를 얻을 수 있다.'
, 'session ? 동일 클라이언트에 의해 발생하는 여러 번의 요청을 하나의 의미 있는 작업으로 처리할 때 사용한다.'
, 'application ? ServletConfig 객체를 이용할수 있게 해준다.'
, 'out ? 클라이언트에게 보여줄 내용을 출력한다'
,'application ? ServletConfig 객체를 이용할수 있게 해준다.');

insert into javabox_test
 values(javabox_test_seq.nextval,4
,'다음은 jsp 에서 import 를 설정하는 구문이다. () 에 들어갈 단어는?
<%@ (  ) import="UserInfo"%>'
,'include', 'page', 'taglib', 'forward'
,'page');

insert into javabox_test
 values(javabox_test_seq.nextval,4
,'어떤 메서드를 service 메서드와 동급의 멤버 메서드로 선언하려고 했을 때 사용하는 스크립트 구문은 무엇인가 ?'
,'<%! public boolean loginCheck(){ . . . } %>'
, '<% public boolean loginCheck(){ . . . } %>'
, '<%= public boolean loginCheck(){ . . . } %>'
, '<%-- public boolean loginCheck(){ . . . } --%>'
,'<%! public boolean loginCheck(){ . . . } %>');

insert into javabox_test
 values(javabox_test_seq.nextval,4
,'19. page 지시문에서 error 페이지를 지정할 때 사용하는 속성은 무엇인가 ?'
,'import', 'isErrorPage', 'buffer', 'errorPage'
,'errorPage');

insert into javabox_test
 values(javabox_test_seq.nextval,4
,'20. 다음 중 멤버변수를 선언할 수 있는 요소는?'
,'<%   %>', '<%!    %>', '<%=    %>', '<%--    %>'
,'<%!    %>');

insert into javabox_test
 values(javabox_test_seq.nextval,3
,'다형성에 대한 설명이 아닌것은?'
,'다형성은 다양한 변신을 의미하는 개념이다.'
, '다형성은 "서로 다른 객체가 동일한 메시지에 대하여 서로 다른 방법으로 응답할 수 있는 기능"을 의미한다.'
, '계층구조가 형성되서 유지보수하기가 어렵다.'
, '하나의 타입으로 여러가지의 타입을 관리할 수 있다.'
,'계층구조가 형성되서 유지보수하기가 어렵다.');

insert into javabox_test
 values(javabox_test_seq.nextval,3
,'abstract에 대한 설명중 옮은것은?'
,'하위클래스에게 메서드 구현 강제'
, '재사용성 x'
, '다중상속'
, '다양한 구현이 가능'
,'하위클래스에게 메서드 구현 강제');

insert into javabox_test
 values(javabox_test_seq.nextval,3
,'interface에 대한 설명중 틀린것은?'
,'재사용성X', '다중상속', '추상메서드를 이용한 하위 클래스에게 메서드 구현 강제'
, 'interface 끼리 상속 가능하다'
,'재사용성X');

insert into javabox_test
 values(javabox_test_seq.nextval,3
,'예약어 this에 대한 설명이 아닌것은?'
,'this 예약어는 현재의 객체를 의미한다.'
, 'this 예약어는 클래스내에서 다른 생성자를 호출할 때도 사용된다'
, 'this 예약어를 사용함으로써 의미잇는 변수명을 사용할 수 있다'
, 'this 예약어는 클래스내에서 다른 생성자 호출할 때는 사용못한다'
,'this 예약어는 클래스내에서 다른 생성자 호출할 때는 사용못한다');

insert into javabox_test
 values(javabox_test_seq.nextval,3
,'다음은 인터페이스 대한 설명이다. 틀린것은?'
,'인터페이스는 상수와 메서드 선언들의 집합니다'
, '인터페이스는 추상 메소드와 상수만으로 구성된 추상 클래스라 할 수 있다'
, '인터페이스의 개념을 이용하여 다중 상속의 개념을 구현할 수 있다'
, '인터페이스들은 상속된 계층 구조를 이룰 수 있으며, 상속된 인터페이스를 포함하는 클래스는 관련된 모든 메소드를 오버라이딩하지 않아도 된다'
,'인터페이스들은 상속된 계층 구조를 이룰 수 있으며, 상속된 인터페이스를 포함하는 클래스는 관련된 모든 메소드를 오버라이딩하지 않아도 된다');

insert into javabox_test
 values(javabox_test_seq.nextval,3
,'Thread에 관한 설명이 아닌것은?'
,'synchronized 메소드는 한순간에 하나의 스레드만 실행할 수 있다'
, '다수 개의 스레드가 임계영역을 수행하기 위해서는 synchronized 메소드를 사용해야 한다'
, '한스레드가 동기화 메소드를 수행 중이면 다른 스레드는 대기해야 한다'
, '자바에서는 스레드를 지원하기 위해 Thread 클래스를 제공하고 있지않다'
,'자바에서는 스레드를 지원하기 위해 Thread 클래스를 제공하고 있지않다');

insert into javabox_test
 values(javabox_test_seq.nextval,3
,'멀티 스레딩의 장점중 틀린것은?'
,'CPU의 사용률을 향상시킨다',
 '자원을 보다 효율적으로 사용할 수 있다'
, '사용자에 대한 응답성이 향상된다'
, '동시에 작업해서 코드 관리가 편리해진다'
,'동시에 작업해서 코드 관리가 편리해진다');
 
